#pragma once

#include "IXFrame.h"



class ExportXSkinLib IXHwnd : public IXFrame
{
    DEF_INTERFACE(IXHwnd, _T("{06A05DE8-3C0F-4bdc-AD3D-616F4B489F57}"));
public:
    virtual ~IXHwnd(){};

    virtual void    STDMETHODCALLTYPE   Attach(IXControl* pParent, XWND xWnd, LPCTSTR szId) = 0;
    virtual void    STDMETHODCALLTYPE   Detach() = 0;
    virtual XWND    STDMETHODCALLTYPE   GetHandle() = 0;

    virtual DWORD   STDMETHODCALLTYPE   GetStyle() = 0;
    virtual void    STDMETHODCALLTYPE   ModifyStyle(DWORD dwAddStyle, DWORD dwRemoveStyle) = 0;

    virtual DWORD   STDMETHODCALLTYPE   GetExtendStyle() = 0;
    virtual void    STDMETHODCALLTYPE   ModifyExtendStyle(DWORD dwAddExStyle, DWORD dwRemoveExStyle) = 0;

    virtual DWORD   STDMETHODCALLTYPE   GetHwndFlags() = 0;
    virtual BOOL    STDMETHODCALLTYPE   OnCommand(UINT command) = 0;

    virtual BOOL    STDMETHODCALLTYPE   OnCtlColor(XCANVAS xCanvas, OUT XBRUSH* pBrush) = 0;

    virtual void    STDMETHODCALLTYPE   SetBackBrush(IN XBRUSH bkBrush) = 0;

    virtual LRESULT STDMETHODCALLTYPE   OnHwndWndProc(UINT message, WPARAM wParam, LPARAM lParam, BOOL* bHandled) = 0;
};
